MySQL installen op Ubuntu
Bronnen
-
Lisa Tagliaferri, How To Install WordPress on Ubuntu 20.04 with a LAMP Stack, Posted June 30, 2020
-
How to Allow Remote Connections to MySQL, March 26, 2020
-
Sergiu, How to Install MySQL in Ubuntu Linux, April 16, 2019
- Mark Drake, How To Install MySQL on Ubuntu 18.04, April 27, 2018
Installeren
- MySQL installeren vanuit de Ubuntu-repositories
- Zorg er allereerst voor dat uw repositories worden bijgewerkt door het volgende commando uit te voeren:
sudo apt update
- Om MySQL (laatste versie) 5.7 te installeren, typ je gewoon:
sudo apt install mysql-server -y
- Zorg er allereerst voor dat uw repositories worden bijgewerkt door het volgende commando uit te voeren:
-
Veilige MySQL-serverinstallatie
Voer de volgende opdracht uit om de beveiliging van de MySQL-server aan te passen:
sudo mysql_secure_installation
-
VALIDATE PASSWORD COMPONENT (Press y|Y for Yes, any other key for No) : y
-
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary filePlease enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 2
-
-
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
-
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
-
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
-
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
-
- Doorgaans wordt de MySQL-service automatisch gestart zodra het pakket is geconfigureerd. Om te controleren of de MySQL-server actief is of niet, gebruik je deze opdracht:
sudo systemctl status mysql
Voorbereiden voor remote connectie
Het is niet ongebruikelijk om databases en webservers op dezelfde lokale computer te hosten. Veel organisaties gaan nu echter over naar een meer gedistribueerde omgeving.
Een aparte databaseserver kan de beveiliging en hardwareprestaties verbeteren en laat toe om resources snel te schalen. In dergelijke gevallen is het belangrijk om te leren hoe je externe bronnen effectief kunt beheren.
- Ubuntu
- Wijzig het MySQL configuratiebestand
- Gebruik je favoriete teksteditor om het bestand mysqld.cnf te openen. Ik gebruik hier de nano-teksteditor. Voer de volgende opdracht uit om toegang te krijgen tot het MySQL-serverconfiguratiebestand:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
-
Het nieuwe IP-adres moet overeenkomen met het adres van de machine die op afstand toegang moet hebben tot de MySQL-server. Als je MySQL aan 0.0.0.0 bindt, kan elke machine, die de MySQL-server aanspreekt, er ook verbinding mee maken.
Vervang xxx.xxx.xxx.xxx door je eigen IP adres:
bind-address = xxx.xxx.xxx.xxx all
of voeg het volgende bind-adres toe als geen IP wilt specificeren:
bind-address = 0.0.0.0
Nadat u de nodige wijzigingen heeft aangebracht, slaat u het configuratiebestand op en sluit u het af.
- Nadat je het IP adres hebt vervangen moet je de MySQL server stoppen en weer opstarten:
sudo systemctl restart mysql
- Gebruik je favoriete teksteditor om het bestand mysqld.cnf te openen. Ik gebruik hier de nano-teksteditor. Voer de volgende opdracht uit om toegang te krijgen tot het MySQL-serverconfiguratiebestand:
- Stel een firewall in om externe MySQL-verbinding toe te staan:
UFW is de standaard firewalltool in Ubuntu. Typ in een terminalvenster de volgende opdracht om verkeer toe te staan en het IP-adres en de poort af te stemmen:sudo ufw allow from remote_ip_address to any port 3306
Je opdrachten gebruiken om poort 3306 tot en met UFW toe te staan:sudo ufw allow out 3306/tcp sudo ufw allow in 3306/tcp
En om te controleren of de regels zijn toegevoegd
sudo ufw status
- Schakel Ubuntu-firewall in
Het is heel eenvoudig om de ufw in te schakelen met het ufw enable-commando, maar voordat we de firewall inschakelen, moeten we ervoor zorgen dat we ook een firewallregel toevoegen om de SSH-verbinding met onze Ubuntu-server mogelijk te maken. Anders krijg je geen toegang meer de server.
Het eerste commando opent de ssh-poort 22 van de Ubuntu-firewall, daarna schakelen we de firewall in met behulp van de ufw-opdracht:sudo ufw allow 22/tcp sudo ufw enable
- Wijzig het MySQL configuratiebestand
- MySQL
-
Hoe verleen ik externe toegang tot een nieuwe MySQL-database?
-
Als je nog geen databases hebt, kan je een database maken door het volgende commando in uw MySQL-shell te typen:
CREATE DATABASE ‘yourDB’;
En een externe gebruikerstoegang verlenen tot een specifieke database:
GRANT ALL PRIVILEGES ON yourDB.* TO user1@’133.155.44.103’ IDENTIFIED BY ‘password1’;
-
Externe toegang verleent tot bestaande MySQL-database
Het verlenen van externe toegang aan een gebruiker voor een bestaande database vereist twee opdrachten:
update db set Host=’133.155.44.103' where Db='yourDB'; update user set Host=’133.155.44.103' where user='user1';
De gebruiker met de naam user1 heeft nu toegang tot de database vanaf een externe locatie die wordt geïdentificeerd door het IP adres 133.155.44.103.
- Om een externe gebruiker met de juiste privileges te laten verbinden, moet die gebruiker zowel van de localhost als vanaf de '%' toegang krijgen:
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass'; CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
vervolgens:
GRANT ALL ON *.* TO 'myuser'@'localhost' WITH GRANT OPTION; GRANT ALL ON *.* TO 'myuser'@'%' WITH GRANT OPTION;
tenslotte:
FLUSH PRIVILEGES; EXIT;
-
-
- Validatie vereisten voor paswoorden bekijken;
SHOW VARIABLES LIKE 'cvalidate_password%';
- Een MySQL gebruiker verwijderen:
DROP USER 'jeffrey'@'localhost'
- Paswoord wijzigen:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
ALTER USER 'username' IDENTIFIED BY 'password'
- Remote connectie testen:
Als de databaseserver zich op een externe computer bevindt, probeer dan de client-server-connectiviteit te testen met behulp van de ping-opdracht, bijvoorbeeld:
$ ping server_ip_address
Als er een connectie is gebruik dan de
ps
instructie om informatie te tonen over de geselecteerde actieve processen. Gebruik de opties:-A
– activates selection of all processes-f
– enables full format listing
De instructie is dan:
$ ps -Af | grep mysqld
Start de MySQL server:
sudo systemctl start mysql.service
Als je nog steeds geen connectie hebt check de poort (3306) waarop de MySQL server luistert:
$ netstat -lnp | grep mysql
waarbij de opties zijn:
-l
– displays listening ports-n
– enables display of numerical addresses-p
– shows PID and name of the program owning the socket